home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / iomon2.zip / IODAT.INC < prev    next >
Text File  |  1992-01-20  |  4KB  |  134 lines

  1. ;---------------------------------------------------------------
  2. ;iodat.inc - data for I/O Monitor                              |
  3. ;--------------------------------------------------------------|
  4. ;
  5. iostack3        segment para stack 'STACK' use16
  6. io_stack3       dw      256 dup('S')
  7. io_sp3          label   word
  8. iostack3        ends
  9.  
  10. iostack         segment para public 'STACK' use16
  11. STACK_BEG       EQU     $
  12. io_stack        dw      256 dup('S')
  13. io_sp           label   word
  14. STACK_END       EQU     $
  15. iostack         ends
  16.  
  17. gdt_seg         segment para public 'data16' use16
  18.                 public  sel_databs
  19.                 public  sel_stack
  20.                 public  sel_video
  21.                 public  sel_data
  22.                 public  sel_tss_alias
  23.  
  24. GDT_BEG         EQU     $
  25. sel_null        seg_descrip     <>
  26. sel_tss         seg_descrip     <>
  27. sel_tss_alias   seg_descrip     <>
  28. sel_gdt_alias   seg_descrip     <>
  29. sel_isrcode     seg_descrip     <>
  30. sel_code        seg_descrip     <>
  31. sel_databs      seg_descrip     <>
  32. sel_stack       seg_descrip     <>
  33. sel_video       seg_descrip     <>
  34. sel_data        seg_descrip     <>
  35. GDT_END         EQU     $
  36. gdt_seg         ends
  37.  
  38. idt_seg         segment para public 'data16' use16
  39. IDT_BEG         EQU     $
  40.                 DEFIDTI 0
  41.                 idt     <isrcode:int1_isr,gdt_seg:sel_isrcode,,PRESENT+(DPL0 shl 5)+INT_GATE,>
  42.                 DEFIDTI 2
  43.                 idt     <,,,PRESENT + (DPL0 shl 5) + INT_GATE,>
  44.  
  45.                 irp     z, <4, 5, 6, 7>
  46.                 DEFIDTI &z
  47.                 endm
  48.  
  49.                 irp     z, <8, 9, 0ah, 0bh, 0ch, 0dh, 0eh, 0fh>
  50.                 DEFIDTE &z
  51.                 endm
  52.  
  53.  idt       (1fh - 0fh)  dup(<,,,PRESENT + (DPL0 shl 5) + INT_GATE,>)
  54.  
  55.                 irp     z, <20h, 21h, 22h, 23h, 24h, 25h, 26h, 27h>
  56.                 DEFIDTI &z
  57.                 endm
  58.  idt       (6Fh - 27h)  dup(<,,,PRESENT + (DPL0 shl 5) + INT_GATE,>)
  59.  
  60.                 irp     z, <70h, 71h, 72h, 73h, 74h, 75h, 76h, 77h>
  61.                 DEFIDTI &z
  62.                 endm
  63.  
  64. IDT_END         EQU     $
  65. idt_seg         ends
  66.  
  67. data            segment para public 'data16' use16
  68.                 public  start_port
  69.                 public  end_port
  70.                 public  old_int1
  71.                 public  old_user_int
  72.                 public  io_table
  73.                 public  IO_TAB_ENTRIES
  74.                 public  access_port
  75.                 public  access_info
  76.                 public  store_buf
  77.                 public  store_buf_end
  78.                 public  store_ptr
  79.                 public  store_wrapped
  80.                 public  display_loc
  81.                 public  trap_status
  82.  
  83.  
  84. DATA_BEG        EQU     $
  85. noprot_msg      db      'Cannot run if already in protected mode.', BEEP, CR, LF, '$'
  86. not386_msg      db      'Program requires at least an 80386.', BEEP, CR, LF, '$'
  87. bad_2nd_msg     db      '2nd port number must be >= first port.', BEEP, CR, LF, '$'
  88. bad_arg_msg     db      'Invalid port address specified.', BEEP, CR, LF, '$'
  89. start_port      dw      0
  90. end_port        dw      0
  91. old_int1        dd      ?
  92. old_user_int    dd      ?
  93. access_port     dw      ?
  94. access_info     db      ?
  95. trap_status     db      0
  96.  
  97.  
  98. io_table        io_struc        <0e4h, INPUT+CONSTANT+ABYTE>
  99.                 io_struc        <0e5h, INPUT+CONSTANT+AWORD>
  100.                 io_struc        <0e6h, OUTPUT+CONSTANT+ABYTE>
  101.                 io_struc        <0e7h, OUTPUT+CONSTANT+AWORD>
  102.                 io_struc        <0ech, INPUT+ABYTE>
  103.                 io_struc        <0edh, INPUT+AWORD>
  104.                 io_struc        <0eeh, OUTPUT+ABYTE>
  105.                 io_struc        <0efh, OUTPUT+AWORD>
  106. IO_TAB_ENTRIES  EQU     ($ - io_table)/size io_struc
  107.  
  108.  
  109. store_buf       db      BUF_SIZE dup(0)
  110. store_buf_end   equ     $
  111. store_ptr       dw      offset store_buf
  112. store_wrapped   db      0
  113.  
  114.  
  115. gdtl            EQU     THIS FWORD
  116. gdtlim          dw      (GDT_END-GDT_BEG)-1
  117. gdtadrs         dd      ?
  118.  
  119. idtl            EQU     THIS FWORD
  120. idtlim          dw      (IDT_END-IDT_BEG)-1
  121. idtadrs         dd      ?
  122.  
  123. display_loc     dw      0               ;offset into video page
  124. DATA_END        EQU     $
  125. data            ends
  126.  
  127. tss_seg         segment para public 'data16' use16
  128. TSS_BEG         EQU     $
  129.                 tss_dat <>
  130. TSS_END         EQU     $
  131. tss_seg         ends
  132. ;------end of iodat.inc
  133.  
  134.